package com.ctshk.rpc.goods.service;

import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.goods.dto.ShoppingShopStoreDTO;
import com.ctshk.rpc.goods.dto.ShoppingShopStoreDetailedTitleDTO;
import com.ctshk.rpc.goods.req.ShoppingShopStoreAddReq;
import com.ctshk.rpc.goods.req.ShoppingShopStorePageReq;
import com.ctshk.rpc.goods.req.ShoppingShopStoreUpdateStatusReq;


/**
 * <p>
 * 小店管理 服务类
 * </p>
 *
 * @author 姜斌文
 * @since 2021-04-07
 */
public interface IShoppingShopStoreService {
	/**
	 * 新增小店
	 * @param shopStoreAddReq 小店入参对象
	 * @param userId 用户ID
	 */
	void addShoppingShopStore(ShoppingShopStoreAddReq shopStoreAddReq, Long userId);
	
	/**
	 * 新增成员小店
	 * @param shopStoreAddReq 小店成员入参对象
	 * @param userId 用户ID
	 */
	void addShoppingShopStoreMember(ShoppingShopStoreAddReq shopStoreAddReq, Long userId);
	
	/**
	 * 编辑小店
	 * @param shopStoreAddReq 更新小店入参对象
	 * @param userId 用户ID
	 */
	void updateShoppingShopStore(ShoppingShopStoreAddReq shopStoreAddReq, Long userId);
	
	/**
	 * 编辑小店状态
	 * @param shopStoreUpdateReq 更新小店状态入参对象
	 * @param userId 用户ID
	 */
	void updateShoppingShopStoreStatus(ShoppingShopStoreUpdateStatusReq shopStoreUpdateReq, Long userId);
	
	/**
     * 小店管理列表查询
     * @param pageReq  分页条件入参
     * @param tokenUser  登录用户
     * @return 小店管理分页列表
     */
    PageResponse<ShoppingShopStoreDTO> findShoppingShopStoreByCondition(ShoppingShopStorePageReq pageReq, TokenUser tokenUser);

	/**
	 * 小店明细查询
	 *
	 * @param req  分页条件入参
	 * @param tokenUser 登录用户
	 * @return 小店明细对象
	 */
    ShoppingShopStoreDetailedTitleDTO findShoppingShopStoreById(ShoppingShopStorePageReq req, TokenUser tokenUser);

	/**
	 * 根据小店ID查询小店详细信息
	 * @param id 小店ID
	 * @return
	 */
	ShoppingShopStoreDTO findShoppingShopStoreDetailById(Long id, TokenUser tokenUser);
}
